home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / PD_THEMA / CPX / GEMSOUND / SOURCE / MAKE_CPX.C < prev    next >
C/C++ Source or Header  |  1998-03-14  |  3KB  |  98 lines

  1. /*  MAKE_CPX.C
  2.  *  Erzeugt einen Header und linkt ihn mit SND_CPX.CP
  3.  *  zum fertigen SND_CPX.CPX.
  4.  *  
  5.  *  aus: GEM Sound
  6.  *       TOS Magazin
  7.  *
  8.  *  (c)1992 by Richard Kurz
  9.  *  Vogelherdbogen 62
  10.  *  7992 Tettnang
  11.  *  Fido 2:241/7232
  12.  *
  13.  *  Erstellt mit Pure C
  14.  *
  15.  *  ACHTUNG!!!! Alle Dateien müssen im gleichen Ordner sein!!!!!
  16.  */
  17.  
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <string.h>
  21. #include <tos.h>
  22. #include <aes.h>
  23. #include <portab.h>
  24. #include "cpx.h"
  25. #include "icon.icn"  /* Das Icon.    */
  26.  
  27. /* Nur zur Beruhigung von Pure C.    */
  28. struct foobar
  29. {
  30.     WORD    dummy;
  31.     WORD    *image;
  32. };
  33.  
  34. /* Der Kopf des Ganzen.             */
  35. CPXHEAD header;
  36.  
  37. void main(void)
  38. /* Macht aus SND_CPX.CP ein CPX-Modul. */
  39. {
  40.     WORD i;     /* Hilfsvariable.       */
  41.     FILE *fp,   /* Datei-Zeiger.        */
  42.          *fp2;
  43.     
  44.     header.magic=100;           /* Dieser Wert muß immer 100 sein.  */
  45.     header.flags.ram_resident=0;/* Resident oder nicht?             */
  46.     header.flags.boot_init=1;   /* Soll das Modul bei der XControl- */
  47.                                 /* Initialisierung aufgerufen       */
  48.                                 /* werden? (cpx_init).              */
  49.     header.flags.set_only =0;   /* Wenn set_only 1 ist, wird das    */
  50.                                 /* Modul nicht in die CPX-Liste     */
  51.                                 /* eingetragen.                     */
  52.     
  53.     header.cpx_id=(long)'GSND'; /* ID-String des CPX-Moduls. Sollte */
  54.                                 /* für jedes Modul einzigartig sein!*/
  55.     header.cpx_version=0x0100;  /* Versions-Nr. des CPX-Moduls.     */
  56.  
  57.     strcpy(header.i_text,"by R. Kurz"); /*  Text unter dem Icon.    */
  58.     /* Das Icon wird in den Header kopiert.                         */
  59.     for(i=0;i<DATASIZE;i++) 
  60.         header.icon[i]=icon[i];      
  61.     header.i_info.i_color=1;            /* Farbe des Icons.         */
  62.     header.i_info.reserved=0;
  63.     header.i_info.i_char=0;
  64.     strcpy(header.text,                 /* Titel des CPX-Moduls.    */
  65.            "GEM Sound"); 
  66.     header.t_info.c_board=1;
  67.     header.t_info.c_text=1;             /* Farbe des Titels.        */
  68.     header.t_info.pattern=8;
  69.     header.t_info.c_back=0;
  70.     
  71.     /* Wir basteln uns ein CPX-Modul.                               */
  72.     puts("SND_CPX.CPX ist in Arbeit!");
  73.     fp=fopen("snd_cpx.cpx","wb");
  74.     if(fp==NULL)
  75.     {
  76.         puts("snd_cpx.cpx kann nicht erzeugt werden!!");
  77.         exit(1);
  78.     }
  79.     fwrite(&header,sizeof(CPXHEAD),1,fp);
  80.     fp2=fopen("snd_cpx.cp","rb");
  81.     if(fp2==NULL)
  82.     {
  83.         puts("snd_cpx.cp kann nicht geöffnet werden!!");
  84.         exit(1);
  85.     }
  86.     while(!feof(fp2))
  87.     {
  88.         i=getc(fp2);
  89.         if(i==EOF) break;
  90.         putc(i,fp);
  91.     }
  92.     puts("Fertig!");
  93.     Cconout('\a');
  94.     fclose(fp);
  95.     fclose(fp2);
  96.     exit(0);
  97. }
  98.